home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / vol_200 / 221_01 / cc2.asm < prev    next >
Assembly Source File  |  1980-01-01  |  22KB  |  1,905 lines

  1. ;small-c V2.3
  2.  EXT ccdiv,ccmult
  3.  EXT fopen,fclose,getc,putc,putchar,getchar,rewind,gets
  4.  EXT exit
  5.  EXT CCSWITCH
  6.  EXT CCPOLL
  7.  EXT isalpha,isupper,islower,isdigit,isspace
  8.  EXT toupper,tolower
  9.  EXT strlen,reverse,left,strcmp,strcpy
  10.  EXT abs,itoa,atoi,printf
  11.  EXT addglb
  12.  EXT addloc
  13.  EXT addwhile
  14.  EXT amatch
  15.  EXT blanks
  16.  EXT ch
  17.  EXT comment
  18.  EXT constexp
  19.  EXT cout
  20.  EXT debug
  21.  EXT declloc
  22.  EXT defname
  23.  EXT defstora
  24.  EXT delwhile
  25.  EXT doexpres
  26.  EXT dumplits
  27.  EXT endst
  28.  EXT entry
  29.  EXT errrpt
  30.  EXT findglb
  31.  EXT findloc
  32.  EXT gch
  33.  EXT getlabel
  34.  EXT getint
  35.  EXT illname
  36.  EXT inbyte
  37.  EXT inchar
  38.  EXT inline
  39.  EXT junk
  40.  EXT jump
  41.  EXT kill
  42.  EXT match
  43.  EXT modstk
  44.  EXT multidef
  45.  EXT needbrac
  46.  EXT nextsym
  47.  EXT nl
  48.  EXT number
  49.  EXT outbyte
  50.  EXT outdec
  51.  EXT outstr
  52.  EXT postlabe
  53.  EXT printlab
  54.  EXT putint
  55.  EXT readwhil
  56.  EXT ret
  57.  EXT sout
  58.  EXT streq
  59.  EXT sw
  60.  EXT symname
  61.  EXT tab
  62.  EXT test
  63.  EXT argstk
  64.  EXT ctext
  65.  EXT cmode
  66.  EXT DEFDEBUG
  67.  EXT declared
  68.  EXT declstat
  69.  EXT eof
  70.  EXT first_fu
  71.  EXT lastst
  72.  EXT litlab
  73.  EXT litptr
  74.  EXT lptr
  75.  EXT monitor
  76.  EXT ncmp
  77.  EXT startcom
  78.  EXT statlab
  79.  EXT stdecl
  80.  EXT stkp
  81.  EXT stlab
  82.  EXT swactive
  83.  EXT swdefaul
  84.  EXT swnext
  85.  EXT swend
  86.  EXT cptr
  87.  EXT cptr2
  88.  EXT line
  89.  EXT locptr
  90.  EXT glbptr
  91.  EXT statptr
  92.  EXT symtab
  93.  NAME needsub
  94.  GLOBAL needsub
  95. needsub
  96.  LEAS -2,S
  97.  LDD  #cc1+0
  98.  PSHS D
  99.  JSR match
  100.  LEAS 2,S
  101.  CMPD #0
  102.  LBEQ cc2
  103.  LDD  #0
  104.  LEAS 2,S
  105.  RTS
  106. cc2
  107.  LEAY 0,S
  108.  TFR  Y,D
  109.  PSHS D
  110.  JSR number
  111.  LEAS 2,S
  112.  PSHS D
  113.  LDD  #0
  114.  CMPD ,S++
  115.  LBNE cc3
  116.  LDD  #cc1+2
  117.  PSHS D
  118.  JSR errrpt
  119.  LEAS 2,S
  120.  LEAY 0,S
  121.  TFR  Y,D
  122.  PSHS D
  123.  LDD  #0
  124.  PSHS D
  125.  ADDD ,S++
  126.  ADDD ,S++
  127.  PSHS D
  128.  LDD  #1
  129.  STD  [,S++]
  130. cc3
  131.  LEAY 0,S
  132.  TFR  Y,D
  133.  PSHS D
  134.  LDD  #0
  135.  PSHS D
  136.  ADDD ,S++
  137.  ADDD ,S++
  138.  PSHS D
  139.  LDD  [,S++]
  140.  PSHS D
  141.  LDD  #0
  142.  CMPD ,S++
  143.  LBLE cc4
  144.  LDD  #cc1+19
  145.  PSHS D
  146.  JSR errrpt
  147.  LEAS 2,S
  148.  LEAY 0,S
  149.  TFR  Y,D
  150.  PSHS D
  151.  LDD  #0
  152.  PSHS D
  153.  ADDD ,S++
  154.  ADDD ,S++
  155.  PSHS D
  156.  LEAY 2,S
  157.  TFR  Y,D
  158.  PSHS D
  159.  LDD  #0
  160.  PSHS D
  161.  ADDD ,S++
  162.  ADDD ,S++
  163.  PSHS D
  164.  LDD  [,S++]
  165.  COMA
  166.  COMB
  167.  ADDD #1
  168.  STD  [,S++]
  169. cc4
  170.  LDD  #cc1+41
  171.  PSHS D
  172.  JSR needbrac
  173.  LEAS 2,S
  174.  LEAY 0,S
  175.  TFR  Y,D
  176.  PSHS D
  177.  LDD  #0
  178.  PSHS D
  179.  ADDD ,S++
  180.  ADDD ,S++
  181.  PSHS D
  182.  LDD  [,S++]
  183.  LEAS 2,S
  184.  RTS
  185. cc1 FCB 93,0,109,117,115,116,32,98,101,32
  186.  FCB 99,111,110,115,116,97,110,116,0,110
  187.  FCB 101,103,97,116,105,118,101,32,115,105
  188.  FCB 122,101,32,105,108,108,101,103,97,108
  189.  FCB 0,93,0
  190.  GLOBAL newfunc
  191. newfunc
  192.  LEAS -13,S
  193.  LDD  monitor
  194.  CMPD #0
  195.  LBEQ cc6
  196.  LDD  #13
  197.  PSHS D
  198.  LDD  #2
  199.  PSHS D
  200.  JSR cout
  201.  LEAS 4,S
  202.  LDD  #line
  203.  PSHS D
  204.  LDD  #2
  205.  PSHS D
  206.  JSR sout
  207.  LEAS 4,S
  208. cc6
  209.  LEAY 2,S
  210.  TFR  Y,D
  211.  PSHS D
  212.  JSR symname
  213.  LEAS 2,S
  214.  PSHS D
  215.  LDD  #0
  216.  CMPD ,S++
  217.  LBNE cc7
  218.  LDD  #cc5+0
  219.  PSHS D
  220.  JSR errrpt
  221.  LEAS 2,S
  222.  JSR kill
  223.  LEAS 13,S
  224.  RTS
  225. cc7
  226.  LEAY 0,S
  227.  TFR  Y,D
  228.  PSHS D
  229.  LEAY 4,S
  230.  TFR  Y,D
  231.  PSHS D
  232.  JSR findglb
  233.  LEAS 2,S
  234.  STD  [,S++]
  235.  CMPD #0
  236.  LBEQ cc8
  237.  LDD  0,S
  238.  ADDD #9
  239.  PSHS D
  240.  LDB  [,S++]
  241.  SEX
  242.  PSHS D
  243.  LDD  #4
  244.  CMPD ,S++
  245.  LBEQ cc9
  246.  LEAY 2,S
  247.  TFR  Y,D
  248.  PSHS D
  249.  JSR multidef
  250.  LEAS 2,S
  251.  JMP cc10
  252. cc9
  253.  LDD  0,S
  254.  ADDD #12
  255.  PSHS D
  256.  LDB  [,S++]
  257.  SEX
  258.  PSHS D
  259.  LDD  #4
  260.  CMPD ,S++
  261.  LBNE cc11
  262.  LEAY 2,S
  263.  TFR  Y,D
  264.  PSHS D
  265.  JSR multidef
  266.  LEAS 2,S
  267.  JMP cc12
  268. cc11
  269.  LDD  0,S
  270.  ADDD #12
  271.  PSHS D
  272.  LDD  #4
  273.  STB  [,S++]
  274. cc12
  275. cc10
  276.  JMP cc13
  277. cc8
  278.  LEAY 2,S
  279.  TFR  Y,D
  280.  PSHS D
  281.  LDD  #4
  282.  PSHS D
  283.  LDD  #2
  284.  PSHS D
  285.  LDD  #2
  286.  DECB
  287.  BLT  *+8
  288.  ASL  1,S
  289.  ROL  ,S
  290.  BRA  *-7
  291.  PULS D
  292.  PSHS D
  293.  LDD  #4
  294.  PSHS D
  295.  JSR addglb
  296.  LEAS 8,S
  297. cc13
  298.  LDD  #cc5+32
  299.  PSHS D
  300.  JSR match
  301.  LEAS 2,S
  302.  PSHS D
  303.  LDD  #0
  304.  CMPD ,S++
  305.  LBNE cc14
  306.  LDD  #cc5+34
  307.  PSHS D
  308.  JSR errrpt
  309.  LEAS 2,S
  310. cc14
  311.  LDD  first_fu
  312.  CMPD #0
  313.  LBEQ cc15
  314.  LEAY 2,S
  315.  TFR  Y,D
  316.  PSHS D
  317.  JSR defname
  318.  LEAS 2,S
  319.  LDD  #0
  320.  STD  first_fu
  321. cc15
  322.  LEAY 2,S
  323.  TFR  Y,D
  324.  PSHS D
  325.  LDD  17,S
  326.  PSHS D
  327.  JSR entry
  328.  LEAS 4,S
  329.  LDD  DEFDEBUG
  330.  CMPD #0
  331.  LBEQ cc16
  332.  LEAY 2,S
  333.  TFR  Y,D
  334.  PSHS D
  335.  JSR debug
  336.  LEAS 2,S
  337. cc16
  338.  LDD  #symtab
  339.  PSHS D
  340.  LDD  #512
  341.  PSHS D
  342.  LDD  #14
  343.  PULS X
  344.  JSR ccmult
  345.  ADDD ,S++
  346.  ADDD #14
  347.  STD  locptr
  348.  LDD  #0
  349.  STD  argstk
  350. cc17
  351.  LDD  #cc5+53
  352.  PSHS D
  353.  JSR match
  354.  LEAS 2,S
  355.  PSHS D
  356.  LDD  #0
  357.  CMPD ,S++
  358.  LBNE cc18
  359.  LEAY 2,S
  360.  TFR  Y,D
  361.  PSHS D
  362.  JSR symname
  363.  LEAS 2,S
  364.  CMPD #0
  365.  LBEQ cc19
  366.  LEAY 2,S
  367.  TFR  Y,D
  368.  PSHS D
  369.  JSR findloc
  370.  LEAS 2,S
  371.  CMPD #0
  372.  LBEQ cc20
  373.  LEAY 2,S
  374.  TFR  Y,D
  375.  PSHS D
  376.  JSR multidef
  377.  LEAS 2,S
  378.  JMP cc21
  379. cc20
  380.  LEAY 2,S
  381.  TFR  Y,D
  382.  PSHS D
  383.  LDD  #0
  384.  PSHS D
  385.  LDD  #0
  386.  PSHS D
  387.  LDD  argstk
  388.  PSHS D
  389.  JSR addloc
  390.  LEAS 8,S
  391.  LDD  argstk
  392.  ADDD #2
  393.  STD  argstk
  394. cc21
  395.  JMP cc22
  396. cc19
  397.  LDD  #cc5+55
  398.  PSHS D
  399.  JSR errrpt
  400.  LEAS 2,S
  401.  JSR junk
  402. cc22
  403.  JSR blanks
  404.  LDD  #line
  405.  ADDD lptr
  406.  PSHS D
  407.  LDD  #cc5+77
  408.  PSHS D
  409.  JSR streq
  410.  LEAS 4,S
  411.  PSHS D
  412.  LDD  #0
  413.  CMPD ,S++
  414.  LBNE cc23
  415.  LDD  #cc5+79
  416.  PSHS D
  417.  JSR match
  418.  LEAS 2,S
  419.  PSHS D
  420.  LDD  #0
  421.  CMPD ,S++
  422.  LBNE cc24
  423.  LDD  #cc5+81
  424.  PSHS D
  425.  JSR errrpt
  426.  LEAS 2,S
  427. cc24
  428. cc23
  429.  JSR endst
  430.  CMPD #0
  431.  LBEQ cc25
  432.  JMP cc18
  433. cc25
  434.  JMP cc17
  435. cc18
  436.  LDD  #0
  437.  STD  stkp
  438.  LEAY 11,S
  439.  TFR  Y,D
  440.  PSHS D
  441.  LDD  argstk
  442.  STD  [,S++]
  443. cc26
  444.  LDD  argstk
  445.  CMPD #0
  446.  LBEQ cc27
  447.  LDD  #cc5+96
  448.  PSHS D
  449.  LDD  #4
  450.  PSHS D
  451.  JSR amatch
  452.  LEAS 4,S
  453.  CMPD #0
  454.  LBEQ cc28
  455.  LDD  11,S
  456.  PSHS D
  457.  LDD  #1
  458.  PSHS D
  459.  LDD  #2
  460.  DECB
  461.  BLT  *+8
  462.  ASL  1,S
  463.  ROL  ,S
  464.  BRA  *-7
  465.  PULS D
  466.  PSHS D
  467.  JSR getarg
  468.  LEAS 4,S
  469.  JSR ns
  470.  JMP cc29
  471. cc28
  472.  LDD  #cc5+101
  473.  PSHS D
  474.  LDD  #3
  475.  PSHS D
  476.  JSR amatch
  477.  LEAS 4,S
  478.  CMPD #0
  479.  LBEQ cc30
  480.  LDD  11,S
  481.  PSHS D
  482.  LDD  #2
  483.  PSHS D
  484.  LDD  #2
  485.  DECB
  486.  BLT  *+8
  487.  ASL  1,S
  488.  ROL  ,S
  489.  BRA  *-7
  490.  PULS D
  491.  PSHS D
  492.  JSR getarg
  493.  LEAS 4,S
  494.  JSR ns
  495.  JMP cc31
  496. cc30
  497.  LDD  #cc5+105
  498.  PSHS D
  499.  JSR errrpt
  500.  LEAS 2,S
  501.  JMP cc27
  502. cc31
  503. cc29
  504.  JMP cc26
  505. cc27
  506.  JSR statemen
  507.  PSHS D
  508.  LDD  #3
  509.  CMPD ,S++
  510.  LBEQ cc32
  511.  LDD  #0
  512.  PSHS D
  513.  JSR modstk
  514.  LEAS 2,S
  515.  JSR ret
  516. cc32
  517.  LDD  #0
  518.  STD  stkp
  519.  LDD  #symtab
  520.  PSHS D
  521.  LDD  #512
  522.  PSHS D
  523.  LDD  #14
  524.  PULS X
  525.  JSR ccmult
  526.  ADDD ,S++
  527.  ADDD #14
  528.  STD  locptr
  529.  LDD  litptr
  530.  CMPD #0
  531.  LBEQ cc33
  532.  LDD  litlab
  533.  PSHS D
  534.  JSR printlab
  535.  LEAS 2,S
  536.  LDD  #1
  537.  PSHS D
  538.  JSR dumplits
  539.  LEAS 2,S
  540.  JSR getlabel
  541.  STD  litlab
  542. cc33
  543.  LEAS 13,S
  544.  RTS
  545. cc5 FCB 105,108,108,101,103,97,108,32,102,117
  546.  FCB 110,99,116,105,111,110,32,111,114,32
  547.  FCB 100,101,99,108,97,114,97,116,105,111
  548.  FCB 110,0,40,0,109,105,115,115,105,110
  549.  FCB 103,32,111,112,101,110,32,112,97,114
  550.  FCB 101,110,0,41,0,105,108,108,101,103
  551.  FCB 97,108,32,97,114,103,117,109,101,110
  552.  FCB 116,32,110,97,109,101,0,41,0,44
  553.  FCB 0,101,120,112,101,99,116,101,100,32
  554.  FCB 99,111,109,109,97,0,99,104,97,114
  555.  FCB 0,105,110,116,0,119,114,111,110,103
  556.  FCB 32,110,117,109,98,101,114,32,97,114
  557.  FCB 103,115,0
  558.  GLOBAL getarg
  559. getarg
  560.  LEAS -18,S
  561. cc35
  562.  LDD  #1
  563.  CMPD #0
  564.  LBEQ cc36
  565.  LDD  argstk
  566.  PSHS D
  567.  LDD  #0
  568.  CMPD ,S++
  569.  LBNE cc37
  570.  LEAS 18,S
  571.  RTS
  572. cc37
  573.  LDD  #cc34+0
  574.  PSHS D
  575.  JSR match
  576.  LEAS 2,S
  577.  CMPD #0
  578.  LBEQ cc38
  579.  LDD  #3
  580.  STD  16,S
  581.  JMP cc39
  582. cc38
  583.  LDD  #1
  584.  STD  16,S
  585. cc39
  586.  LEAY 14,S
  587.  TFR  Y,D
  588.  PSHS D
  589.  LEAY 5,S
  590.  TFR  Y,D
  591.  PSHS D
  592.  JSR symname
  593.  LEAS 2,S
  594.  STD  [,S++]
  595.  PSHS D
  596.  LDD  #0
  597.  CMPD ,S++
  598.  LBNE cc40
  599.  JSR illname
  600. cc40
  601.  LDD  #cc34+2
  602.  PSHS D
  603.  JSR match
  604.  LEAS 2,S
  605.  CMPD #0
  606.  LBEQ cc41
  607. cc42
  608.  JSR inbyte
  609.  PSHS D
  610.  LDD  #93
  611.  CMPD ,S++
  612.  LBEQ cc43
  613.  JSR endst
  614.  CMPD #0
  615.  LBEQ cc44
  616.  JMP cc43
  617. cc44
  618.  JMP cc42
  619. cc43
  620.  LDD  #3
  621.  STD  16,S
  622. cc41
  623.  LDD  14,S
  624.  CMPD #0
  625.  LBEQ cc45
  626.  LEAY 0,S
  627.  TFR  Y,D
  628.  PSHS D
  629.  LEAY 5,S
  630.  TFR  Y,D
  631.  PSHS D
  632.  JSR findloc
  633.  LEAS 2,S
  634.  STD  [,S++]
  635.  CMPD #0
  636.  LBEQ cc46
  637.  LDD  0,S
  638.  ADDD #9
  639.  PSHS D
  640.  LDD  18,S
  641.  STB  [,S++]
  642.  LDD  0,S
  643.  ADDD #10
  644.  PSHS D
  645.  LDD  22,S
  646.  STB  [,S++]
  647.  LEAY 12,S
  648.  TFR  Y,D
  649.  PSHS D
  650.  LDD  24,S
  651.  PSHS D
  652.  LDD  4,S
  653.  ADDD #12
  654.  PSHS D
  655.  LDB  [,S++]
  656.  SEX
  657.  PSHS D
  658.  LDD  6,S
  659.  PSHS D
  660.  LDD  #12
  661.  ADDD #1
  662.  ADDD ,S++
  663.  PSHS D
  664.  LDB  [,S++]
  665.  SEX
  666.  PSHS D
  667.  LDD  #8
  668.  DECB
  669.  BLT  *+8
  670.  ASL  1,S
  671.  ROL  ,S
  672.  BRA  *-7
  673.  PULS D
  674.  ADDD ,S++
  675.  PULS X
  676.  PSHS D
  677.  TFR  X,D
  678.  SUBD ,S++
  679.  STD  [,S++]
  680.  LDD  12,S
  681.  PSHS D
  682.  LDD  2,S
  683.  ADDD #12
  684.  PSHS D
  685.  LDD  #2
  686.  PSHS D
  687.  JSR putint
  688.  LEAS 6,S
  689.